package singleton.lazy.security.type2;


public class Singleton {

    /**
     * volatile可以让修改值立即更新至主存，可以看成是一个轻量级的synchronized
     */
    private static volatile Singleton instance;

    /**
     * 构造器私有化
     */
    private Singleton() {

    }

    /**
     * 静态内部类，其中有一个静态属性
     */
    private static class SingletonInstance {
        private static final Singleton instance = new Singleton();
    }

    /**
     * 提供一个静态公共方法，直接返回该实例
     * @return
     */
    public static Singleton getInstance() {

        return SingletonInstance.instance;
    }
}
